#单例模式的根本目的就是要让一个类只能制造出一个对象，节省内存
class Singleton:
    _instance = None
    def __new__(cls, *args, **kwargs):
        # __new__方法是Python中一个特殊的方法，用于创建类的实例。它在实例被创建之前被调用，
        # 通常用于实现单例模式或自定义实例创建逻辑。__new__方法返回一个新创建的对象，
        if not cls._instance:#创建实例之前，会检查 _instance是否为None，如果是，则创建新的实例，否则返回已经存在的实例。
            cls._instance = super(Singleton, cls).__new__(cls)
        return cls._instance

# 使用示例
singleton1 = Singleton()
singleton2 = Singleton()

print(singleton1 is singleton2)  # 输出: True，表示两个实例是同一个
print(id(singleton1))#内存地址相同
print(id(singleton2))
